package com.enqualcomm.kids.mvp.chat;

/**
 * Created by yinzhiqun on 2015/5/30.
 *  被观察者
 */
public interface IRecorderManager{
    int RECORDER_MAX = 15000;//最大录音时间
    int RECORDER_MIN = 1000;//最小录音时间
    /**
     * 开始录音
     * @param path 文件存储位置，确保路径没有问题，否则后续观察者回调可能有问题
     */
    void start(String path);

    /**
     * 结束录音
     * @return
     * 返回当前正在录音的文件路径，如果为null，说明没有正常录音(没有开始直接stop或者录音出错)
     */
    String stop();

    /**
     * 取消录音,和stop不同的是会删除录音文件
     */
    void cancel();

    int getAmplitude();

    String getCurrentFilePath();

    /**
     * 删除当前录音文件
     */
    void deleteCurrentFile();

    /**
     * 释放资源,在activity销毁时调用
     */
    void release();

    void addObserver(RecorderObserver o);
    void removeObserver(RecorderObserver o);
}
